<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="root"></div>

    <script src="../lib/react.js"></script>
    <script src="../lib/react-dom.js"></script>
    <script src="../lib/babel.js"></script>

    <script type="text/babel">
        // let message = "Hello World"
        // function btnClick(){
        //     console.log("btnClick");
        //     message = "Hello react"
        //     rootRender()
        // }
    // const root = ReactDOM.createRoot(document.querySelector("#root"))
    // function rootRender(){
    //     root.render(
    //     <div>
    //         <h2>{message}</h2>
    //         <button onClick={btnClick}> 修改</button>
    //     </div>
    //     )
    // }
    // rootRender()
    // 使用组件进行重构代码
    // 类组件和函数式组件

    class App extends React.Component {
        // 组件数据
        constructor(){
            super()
            this.state={
                message:"hello world",
                isReady: true,
                friend:{
                    name:"tom",
                    desc:"凌晨四点钟的太阳"
                }
            }

            // 对需要绑定的方法，提前绑定好this

        }
        // 组件方法 (实例方法)
       
        // 渲染内容  render方法
        render(){
            const { isReady, friend } = this.state
            // 1.条件判断方式一: 使用if 进行判断
            let showElement = null
            if(isReady){
                showElement =  <h2>准备开始比赛</h2>
            }else{
                showElement =  <h1>请提前做好准备</h1>
            }
            return (
                <div>
                    {/* 2.方式二: 根据条件给变量赋值不同的内容 */}

                    {showElement}
                    {/* 2.方式二: 三元运算符 */}
                    <div>{isReady ? <button>开始战斗</button> : <h3>准备</h3>}</div>
                    {/* 2.方式三: && 逻辑与运算 */}
                    {/*  场景: 当某一个值,有可能为undefined时,使用&&进行条件判断 */}

                    <div>{ friend &&<div>{friend.name+""+friend.desc}</div> }</div>
                </div>
            )
        }
    }

    // 将组件渲染到界面上
    const root = ReactDOM.createRoot(document.querySelector("#root"))
    root.render(<App/>)
    </script>
</body>
</html>